#include <iostream>
#include <deque>
using namespace std;

//deque的一些重要操作
void test(){
    deque<int> dq={1,2,3};
    //双端队列，适合头尾的增删
    dq.push_back(4);
    dq.push_front(0);
    dq.insert(dq.begin()+5,5);
    dq.insert(dq.begin()+6,5,6);
    for(auto it=dq.begin();it!=dq.end();++it){
        cout<<*it<<"    ";
    }
    cout<<endl;
    //删除操作
    dq.pop_back();
    dq.erase(dq.begin()+2);
    dq.pop_front();
    dq.erase(dq.begin()+2);
    for(auto it=dq.begin();it!=dq.end();++it){
        cout<<*it<<"    ";
    }
    cout<<endl;
    //deque的查找和修改操作
    cout<<dq[0]<<endl;
}

int main(){
    
    test();

    return 0;
}

